package br.com.boreo.boreoapp_orcamento.adapter;

import java.util.ArrayList;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import br.com.boreo.boreoapp_orcamento.R;
import br.com.boreo.boreoapp_orcamento.model.Produto;

/**
 * @author Denis Vidal
 * Monta os itens da lista de Produtos.
 */
public class AdapterProdutos extends BaseAdapter {
	 
    private LayoutInflater mInflater;
    private ArrayList<Produto> produtos;
 
    public AdapterProdutos(Context context, ArrayList<Produto> produtos) {
        this.produtos = produtos;
        mInflater = LayoutInflater.from(context);
    }
 
    public int getCount() {
        return produtos.size();
    }
 
    public Produto getItem(int position) {
        return produtos.get(position);
    }
 
    public long getItemId(int position) {
        return position;
    }
 
    public View getView(int position, View view, ViewGroup parent) {
        ItemSuporte itemHolder;
        if (view == null) {
            view = mInflater.inflate(R.layout.item_produtolist, null);

            itemHolder = new ItemSuporte();
            itemHolder.tvDescricaoProduto = ((TextView) view.findViewById(R.id.tvDescricaoProduto));
            itemHolder.tvPrecoProduto = ((TextView) view.findViewById(R.id.tvPrecoProduto));
            itemHolder.tvPrecoProdutoHint = ((TextView) view.findViewById(R.id.tvPrecoProdutoHint));
 
            view.setTag(itemHolder);

        } else {
            itemHolder = (ItemSuporte) view.getTag();
        }
 
        Produto produto = produtos.get(position);
        if(produto.getId() == 0){
        	itemHolder.tvDescricaoProduto.setText("Nenhum produto encontrado no dispositivo.");
        	itemHolder.tvPrecoProdutoHint.setHint("");
        	itemHolder.tvPrecoProduto.setText("");
        }
        else{
        	itemHolder.tvDescricaoProduto.setText(produto.getCodigo()+" - "+produto.getDescricao());
        	itemHolder.tvPrecoProdutoHint.setText(String.format("%.2f", produto.getPreco()));
        	/*Remove acentos do fornecedor*/
        	//itemHolder.tvFornecedorProduto.setText("Forn: "+Normalizer.normalize(produto.getFornecedor(), Normalizer.Form.NFD).replaceAll("[^\\p{ASCII}]", ""));
        }
        return view;
    }
 
    private class ItemSuporte {
    	TextView tvDescricaoProduto;
    	TextView tvPrecoProduto;
    	TextView tvPrecoProdutoHint;
    }
}
